package com.cqut.service;

import java.util.List;
import java.util.Map;

import com.cqut.dto.ComPriorityDTO;
import com.cqut.dto.LimitShowDTO;
import com.cqut.model.CompetitionManager;
import com.cqut.pojo.vo.comPriorityVO;

public interface ICompetitionManagerService {
    boolean save(CompetitionManager competitionManager);

    boolean update(CompetitionManager competitionManager);

    boolean delete(String competitionId);

    boolean batchDelete(String[] primaryKeys);

    CompetitionManager findModel(String competitionId);

    CompetitionManager findModel(String competitionId, String[] parameters);

    Map<String, Object> findMap(String competitionId);

    Map<String, Object> findMap(String competitionId, String[][] parameters);

    List<CompetitionManager> loadModels();

    List<CompetitionManager> loadModels(String condition, Object[] values, String order, String sort, int curPage, int limit);

    List<CompetitionManager> loadModels(String[] parameters, String condition, Object[] values, String order, String sort, int curPage, int limit);

    List<Map<String, Object>> loadMaps();

    List<Map<String, Object>> loadMaps(String condition, Object[] values, String order, String sort, int curPage, int limit);

    List<Map<String, Object>> loadMaps(String[][] parameters, String condition, Object[] values, String order, String sort, int curPage, int limit);

    long count();

    long count(String condition, Object[] values);

    long count(String[] parameters, boolean isDistinct);

    long count(String[] parameters, String condition, Object[] values, boolean isDistinct);

	List<comPriorityVO> loadComPriorityList(ComPriorityDTO comPriorityDTO,
			LimitShowDTO limitShowDTO);

	Object findCountOfCompetitions(ComPriorityDTO comPriorityDTO);

	List<Map<String, Object>> getComParamList(String competitionName,
			LimitShowDTO limitShowDTO);

	long getComParamListCount(String competitionName);

	Map<String, Object> getComDetailBycompetitionId1(String competitionId);

	Map<String, Object> getComDetailBycompetitionId2(String competitionId);

	boolean shiftUpByPriority(int priority);

	boolean shiftDownByPriority(int priority);

	boolean shiftTopByPriority(int priority);
	
	boolean updateStateToProgress(String competitionId, String state);
	
	boolean updateStateToStorage(String competitionId, String state);

	List<Map<String, Object>> getComParamPassList(String competitionName,
			LimitShowDTO limitShowDTO);

	long getComParamPassListCount(String competitionName);

	Map<String, Object> getComRecommendDetailById(String competitionId);

	Object findNumOfFollow(String competitionId);
}
